package sge.servlets;

import java.io.IOException;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import sge.beans.AreaProfissional;
import sge.beans.Bibliografia;
import sge.beans.Curso;
import sge.beans.Disciplina;
import sge.beans.Ementa;
import sge.beans.Fachada;

public class EmentaServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	private RequestDispatcher dispatcher;

	private static Fachada fachada = Fachada.obterInstancia();

	@Override
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		List<AreaProfissional> areas = fachada.listarAreaProfissional();
		request.setAttribute("areas", areas);

		List<Curso> cursos = fachada.todosCurso();
		request.setAttribute("cursos", cursos);

		List<Disciplina> disciplinas = fachada.todasDisciplinas();
		request.setAttribute("disciplinas", disciplinas);

		dispatcher = request.getRequestDispatcher("/ementascriar");
		dispatcher.forward(request, response);
	}

	@Override
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {

		String area = request.getParameter("area");
		String curso = request.getParameter("curso");
		String disciplina = request.getParameter("disciplina");
		String periodo = request.getParameter("periodo");
		String horaAula = request.getParameter("horaAula");
		String horaRelogio = request.getParameter("horaRelogio");
		String ementa = request.getParameter("ementa");
		String preRequisitos = request.getParameter("preRequisitos");
		String objetivos = request.getParameter("objetivos");
		String conteudo = request.getParameter("conteudo");
		String procedimentos = request.getParameter("procedimentos");
		String avaliacao = request.getParameter("avaliacao");
		String software = request.getParameter("software");
		String sites = request.getParameter("sites");
		String quantidade = request.getParameter("quantidade");

		Ementa nova_ementa = new Ementa();
		nova_ementa.setArea(area);
		nova_ementa.setIdCurso(fachada.buscarIDCurso(curso));
		nova_ementa.setIdDisciplina(fachada.buscarIDDisciplina(disciplina));
		nova_ementa.setPeriodo(Integer.parseInt(periodo));
		nova_ementa.setHoraAula(horaAula);
		nova_ementa.setHoraRelogio(horaRelogio);
		nova_ementa.setEmenta(ementa);
		nova_ementa.setPreRequesitos(preRequisitos);
		nova_ementa.setObjetivo(objetivos);
		nova_ementa.setConteudo(conteudo);
		nova_ementa.setMetodologia(procedimentos);
		nova_ementa.setAvaliacao(avaliacao);
		nova_ementa.setInfoSoftware(software);
		nova_ementa.setInfoSites(sites);

		int i = Integer.parseInt(quantidade);
		for (int cont = 0; cont < i; cont++) {
			String livro = request.getParameter("livro" + i);
			String tipo = request.getParameter("tipo"); // <-- complementar
			Long idEspecificacao = fachada.buscarIDEspecificacao(livro);
			Bibliografia nova_bibliografia = new Bibliografia();
			nova_bibliografia.setTipo(tipo);
			nova_bibliografia.setIdEspecificacao(idEspecificacao);
			fachada.inserirBibliografia(nova_bibliografia);
			nova_ementa.addBibliografias(nova_bibliografia.getIdBibliografia());
		}

		fachada.inserirEmenta(nova_ementa);

		dispatcher = request.getRequestDispatcher(request.getContextPath()
				+ "/feedback/cadastro_efetuado.jsp");
		dispatcher.forward(request, response);
	}
}
